﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Crosland.Automotriz.Seguridad.Business;
using Crosland.Automotriz.Seguridad.Entity;
using Crosland.Automotriz.Logic;
using Crosland.Automotriz.Logic.Interfaces;
using Crosland.Automotriz.Logic.Linq;
using System.Configuration;
using DevExpress.Web.ASPxGridView;
using System.Drawing;
using Crosland.Automotriz.Seguridad.ControlExeption;

namespace Crosland.Automotriz.Web.Seguridad
{
    public partial class wFrmUsuarioModificar : System.Web.UI.Page
    {
        static List<listaUsuarios> list;
        static List<ListaUsuarioVendedor> listUsuarioVendedor;
        static List<ListaUsuarioCliente> listUsuarioCliente;

        static List<ListaUsuario_Oficina> listaUsuario_Oficina;
        clsGrupoLogic negociogrupo = new clsGrupoLogic();
        clsUsuarioLogic negocioUsuario = new clsUsuarioLogic();
        iTablaGeneralDet BL_t_mae_tabla_general_DetLogic = new clsT_Mae_Tabla_General_DetLogic();
        clsT_Seg_Usuario_VendedorLogic clst_seg_usuario_vendedor = new clsT_Seg_Usuario_VendedorLogic();
        clsT_Seg_Usuario_ClienteLogic clst_seg_usuario_cliente = new clsT_Seg_Usuario_ClienteLogic();
        protected void Page_Load(object sender, EventArgs e)
        {



            if (!IsPostBack)
            {
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", "JavaScript:confirmSubmitResult();", true);
                list = new List<listaUsuarios>();
                listUsuarioVendedor = new List<ListaUsuarioVendedor>();
                listUsuarioCliente = new List<ListaUsuarioCliente>();
                listaUsuario_Oficina = new List<ListaUsuario_Oficina>();
                this.cargarTipoUsuario();
                this.ValidarOperacion();

                ListaEstructura();
                ListaEstructuraCliente();

                cboCanal.SelectedIndex = 0;
                cboOrgVenta.SelectedIndex = 0;
                cboVendedor.SelectedIndex = 0;


            }




            this.ListaVendedor();
            this.ListaOrgVta();
            this.ListaCanal();

            this.ListaOrgTabOficina();
            this.ListaOfiTabOficina();
            grdUsuarioVendedor.DataSource = listUsuarioVendedor;
            grdUsuarioVendedor.DataBind();



        }



        private void ValidarOperacion()
        {

            try
            {

                if (Session["operacion"].ToString() == "1")
                {
                    txtpassword.ClientVisible = true;
                    txtpasswordConfir.ClientVisible = true;
                    lblpass.ClientVisible = true;
                    lblcon.ClientVisible = true;
                    txtUsuario.ClientEnabled = true;
                    this.ListarAccesosUsuariosNuevo();
                }
                else
                {
                    btnCambiarPassword.ClientVisible = true;
                    this.CargarDatosUsuarios();
                    this.ListarAccesosUsuarios();
                    ListaUsuarioOficina();

                }

            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ValidarOperacion");
                MensajesError(ex.Message, ex, "ValidarOperacion");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ValidarOperacion");
                MensajesError(ex.Message, ex, "ValidarOperacion");
            }




        }

        private bool comaparar()
        {


            foreach (ListaUsuarioVendedor row in listUsuarioVendedor)
            {
                if (row.DES_CANAL_DISTRIB == cboCanal.Text && row.DES_ORG_VTA == cboOrgVenta.Text && row.NOMBRE_APELLIDO == cboVendedor.Text)
                {
                    return true;
                }
            }

            return false;


        }

        private bool comapararGridCliente()
        {


            foreach (ListaUsuarioCliente row in listUsuarioCliente)
            {
                if (row.ID_CLIENTE == Convert.ToInt32(txtIdcliente.Text))
                {
                    return true;
                }
            }

            return false;


        }

        public int ultimo = 0;

        private void agregarDatosGriv()
        {

            try
            {

                ListaUsuarioVendedor objLog = new ListaUsuarioVendedor();

                objLog.ID_ORG_VTA = Convert.ToInt32(cboOrgVenta.SelectedItem.Value);
                objLog.DES_ORG_VTA = cboOrgVenta.Text;
                objLog.ID_CANAL = Convert.ToInt32(cboCanal.SelectedItem.Value);
                objLog.DES_CANAL_DISTRIB = cboCanal.Text;
                objLog.ID_USUARIO = txtUsuario.Text;
                objLog.ID_VENDEDOR = Convert.ToInt32(cboVendedor.SelectedItem.Value);
                objLog.NOMBRE_APELLIDO = cboVendedor.Text;
                foreach (ListaUsuarioVendedor row in listUsuarioVendedor)
                {
                    ultimo = row.ID_SEG_USUARIO_VENDEDOR + 1;

                }
                if (grdUsuarioVendedor.VisibleRowCount == 0)
                {

                    objLog.ID_SEG_USUARIO_VENDEDOR = clst_seg_usuario_vendedor.UltimoNumero() + 1;
                }
                else
                {

                    objLog.ID_SEG_USUARIO_VENDEDOR = ultimo;
                }
                listUsuarioVendedor.Add(objLog);
                grdUsuarioVendedor.DataSource = listUsuarioVendedor;
                grdUsuarioVendedor.DataBind();


            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "agregarDatosGriv");
                MensajesError(ex.Message, ex, "agregarDatosGriv");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "agregarDatosGriv");
                MensajesError(ex.Message, ex, "agregarDatosGriv");
            }





        }

        public int ultimoM = 0;
        public static int variable = 0;
        private void agregarDatosModificado()
        {

            try
            {

                ListaUsuarioVendedor objLog = new ListaUsuarioVendedor();

                objLog.ID_ORG_VTA = Convert.ToInt32(cboOrgVenta.SelectedItem.Value);
                objLog.DES_ORG_VTA = cboOrgVenta.Text;
                objLog.ID_CANAL = Convert.ToInt32(cboCanal.SelectedItem.Value);
                objLog.DES_CANAL_DISTRIB = cboCanal.Text;
                objLog.ID_USUARIO = txtUsuario.Text;
                objLog.ID_VENDEDOR = Convert.ToInt32(cboVendedor.SelectedItem.Value);
                objLog.NOMBRE_APELLIDO = cboVendedor.Text;
                foreach (ListaUsuarioVendedor row in listUsuarioVendedor)
                {
                    ultimoM = row.ID_SEG_USUARIO_VENDEDOR;


                }
                if (variable == clst_seg_usuario_vendedor.UltimoNumero() + 1)
                {

                    objLog.ID_SEG_USUARIO_VENDEDOR = ultimoM + 1;
                }
                else
                {


                    variable = clst_seg_usuario_vendedor.UltimoNumero() + 1;
                    objLog.ID_SEG_USUARIO_VENDEDOR = clst_seg_usuario_vendedor.UltimoNumero() + 1;
                }
                listUsuarioVendedor.Add(objLog);
                grdUsuarioVendedor.DataSource = listUsuarioVendedor;
                grdUsuarioVendedor.DataBind();


            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "agregarDatosModificado");
                MensajesError(ex.Message, ex, "agregarDatosModificado");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "agregarDatosModificado");
                MensajesError(ex.Message, ex, "agregarDatosModificado");
            }





        }

        private void GrabarStructura()
        {

            clsT_Seg_Usuario_VendedorLogic clst_seg_usuario_vendedor = new clsT_Seg_Usuario_VendedorLogic();
            T_SEG_USUARIO_VENDEDOR t_seg_usuario_vendedor = new T_SEG_USUARIO_VENDEDOR();

            try
            {
                clst_seg_usuario_vendedor.EliminarRelacion(txtUsuario.Text);
                foreach (ListaUsuarioVendedor row in listUsuarioVendedor)
                {
                    clst_seg_usuario_vendedor.Insertar_T_SEG(row.ID_SEG_USUARIO_VENDEDOR, row.ID_ORG_VTA, row.ID_CANAL, txtUsuario.Text, row.ID_VENDEDOR);

                }

            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "GrabarStructura");
                MensajesError(ex.Message, ex, "GrabarStructura");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "GrabarStructura");
                MensajesError(ex.Message, ex, "GrabarStructura");
            }



        }

        private void ListaEstructura()
        {

            listUsuarioVendedor.Clear();
            try
            {
                ListaUsuarioVendedor objLog = new ListaUsuarioVendedor();
                var q = from c in clst_seg_usuario_vendedor.lista(txtUsuario.Text)
                        select c;
                foreach (var s in q)
                {
                    objLog.ID_SEG_USUARIO_VENDEDOR = s.ID_SEG_USUARIO_VENDEDOR;
                    objLog.ID_CANAL = s.ID_CANAL;
                    objLog.ID_ORG_VTA = s.ID_ORG_VTA;
                    objLog.ID_USUARIO = s.ID_USUARIO;
                    objLog.ID_VENDEDOR = s.ID_VENDEDOR;
                    objLog.NOMBRE_APELLIDO = s.NOMBRE_APELLIDO;
                    objLog.DES_ORG_VTA = s.DES_ORG_VTA;
                    objLog.DES_CANAL_DISTRIB = s.DES_CANAL_DISTRIB;
                    listUsuarioVendedor.Add(objLog);

                    grdUsuarioVendedor.DataSource = listUsuarioVendedor;
                    grdUsuarioVendedor.DataBind();
                }

            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListaEstructura");
                MensajesError(ex.Message, ex, "ListaEstructura");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListaEstructura");
                MensajesError(ex.Message, ex, "ListaEstructura");
            }






        }

        public struct ListaUsuarioVendedor
        {

            public int ID_SEG_USUARIO_VENDEDOR { get; set; }
            public string NOMBRE_APELLIDO { get; set; }
            public string DES_ORG_VTA { get; set; }
            public string DES_CANAL_DISTRIB { get; set; }
            public string ID_USUARIO { get; set; }
            public int ID_VENDEDOR { get; set; }
            public int ID_CANAL { get; set; }
            public int ID_ORG_VTA { get; set; }

        }

        private void cargarTipoUsuario()
        {

            cboTipoUsuario.DataSource = BL_t_mae_tabla_general_DetLogic.listarFiltroTipoUsuario();
            cboTipoUsuario.ValueField = "ID_GENERAL_DET";
            cboTipoUsuario.TextField = "DES_LARGA";
            cboTipoUsuario.Items.Add("Seleccione", 0);
            cboTipoUsuario.DataBind();
        }

        private void CargarDatosUsuarios()
        {

            txtUsuario.Text = Session["ID_USUARIO"].ToString();
            txtNombreUsuario.Text = Session["DES_NOMBRE"].ToString();
            txtApellidos.Text = Session["DES_APELLIDOS"].ToString();
            txtCorreoElectronico.Text = Session["DES_EMAIL"].ToString();
           // txtUserCreacion.Text = Session["USR_CREACION"].ToString();
            cboTipoUsuario.Text = Session["DES_LARGA"].ToString();
            Session["pass"] = txtPPasswordNuevo.Text.Trim();

            if (Session["IND_ESTADO"].ToString() == "A")
            {

                cboEstado.SelectedIndex = 0;


            }
            else if (Session["IND_ESTADO"].ToString() == "I")
            {

                cboEstado.SelectedIndex = 1;

            }
            else
            {
                cboEstado.SelectedIndex = 0;

            }

        }

        private void ListarAccesosUsuariosNuevo()
        {

            try
            {
                list.Clear();
                List<T_SEG_GRUPO> listar = negociogrupo.ListarAccesosUsuario();

                foreach (T_SEG_GRUPO item in listar)
                {
                    listaUsuarios obj = new listaUsuarios();
                    obj.nombre = item.DES_NOMBRE;
                    obj.descripcion = item.DES_DESCRIPCION;
                    obj.id = item.ID_GRUPO;
                    list.Add(obj);
                }




                gvAccesos_Usuarios.DataSource = list;
                gvAccesos_Usuarios.DataBind();


            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListarAccesosUsuariosNuevo");
                MensajesError(ex.Message, ex, "ListarAccesosUsuariosNuevo");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListarAccesosUsuariosNuevo");
                MensajesError(ex.Message, ex, "ListarAccesosUsuariosNuevo");
            }





        }

        private void ListarAccesosUsuarios()
        {

            try
            {
                list.Clear();
                List<T_SEG_GRUPO> listar = negociogrupo.ListarAccesosUsuario();

                foreach (T_SEG_GRUPO item in listar)
                {
                    listaUsuarios obj = new listaUsuarios();
                    obj.nombre = item.DES_NOMBRE;
                    obj.descripcion = item.DES_DESCRIPCION;
                    obj.id = item.ID_GRUPO;
                    list.Add(obj);
                }




                gvAccesos_Usuarios.DataSource = list;
                gvAccesos_Usuarios.DataBind();

                var q = from ug in negociogrupo.listarUsuario_Grupo()
                        where ug.ID_USUARIO == Session["ID_USUARIO"].ToString()
                        select ug;


                foreach (var item in q)
                {

                    for (int i = 0; i < list.Count; i++)
                    {
                        if (item.ID_GRUPO == list[i].id)
                        {
                            gvAccesos_Usuarios.Selection.SetSelection(i, true);

                            break;

                        }

                    }


                }
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListarAccesosUsuarios");
                MensajesError(ex.Message, ex, "ListarAccesosUsuarios");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListarAccesosUsuarios");
                MensajesError(ex.Message, ex, "ListarAccesosUsuarios");
            }





        }

        public struct listaUsuarios
        {
            public int id { get; set; }
            public string nombre { get; set; }
            public string descripcion { get; set; }
            public bool marcar { get; set; }

        }

        private void limpiarControles()
        {

            txtApellidos.Text = "";
            txtCorreoElectronico.Text = "";
            txtNombreUsuario.Text = "";


        }

        protected void gvAccesos_Usuarios_PageIndexChanged(object sender, EventArgs e)
        {


        }

        protected void btnLimpiar_Click(object sender, EventArgs e)
        {
            limpiarControles();
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            try
            {


                if (Session["operacion"].ToString() == "1")
                {


                    this.registrar();
                    this.GrabarStructura();
                    this.GrabarStructuraCliente();
                    this.RegistrarT_SEG_USUARIO_OFICINA();
                }
                else
                {

                    this.Actualizar();
                    this.GrabarStructura();
                    this.GrabarStructuraCliente();
                    this.RegistrarT_SEG_USUARIO_OFICINA();
                }

            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "btnGrabar_Click");
                MensajesError(ex.Message, ex, "btnGrabar_Click");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "btnGrabar_Click");
                MensajesError(ex.Message, ex, "btnGrabar_Click");
            }



        }

        private void registrar()
        {

            try
            {

                clsUsuarioLogic usuarioLogic = new clsUsuarioLogic();
                if (usuarioLogic.TraerEmail(txtUsuario.Text).Count() > 0)
                {

                    lblmsj.Text = String.Empty;
                    lblmsj.Text = "El usuario ya existe por favor ingrese un usuario diferente";
                    popupmsj.ShowOnPageLoad = true;
                }
                else
                {
                    if (txtUsuario.Text.Trim() == String.Empty)
                    {
                        lblmsj.Text = String.Empty;
                        lblmsj.Text = "Ingrese usuario";
                        popupmsj.ShowOnPageLoad = true;
                    }
                    else if (txtpassword.Text.Trim() == string.Empty)
                    {
                        lblmsj.Text = String.Empty;
                        lblmsj.Text = "Ingerese password";
                        popupmsj.ShowOnPageLoad = true;

                    }
                    else if (txtpasswordConfir.Text.Trim() == string.Empty)
                    {
                        lblmsj.Text = String.Empty;
                        lblmsj.Text = "Ingerese password a confirmar";
                        popupmsj.ShowOnPageLoad = true;
                    }
                    else
                    {
                        T_SEG_USUARIO usuario = new T_SEG_USUARIO();
                        usuario.ID_USUARIO = txtUsuario.Text;
                        usuario.DES_NOMBRE = txtNombreUsuario.Text;
                        usuario.DES_APELLIDOS = txtApellidos.Text;
                        usuario.DES_PASSWORD = negocioUsuario.EncriptarPasswordUser(this.txtpassword.Text);
                        usuario.DES_EMAIL = txtCorreoElectronico.Text;
                        usuario.IND_ESTADO = cboEstado.Text.Substring(0, 1);
                        usuario.ID_TIPO_USUARIO = cboTipoUsuario.Text == "" ? 0 : Convert.ToInt32(cboTipoUsuario.SelectedItem.Value);
                        usuario.USR_ACTUALIZO = Session["User"].ToString();
                        usuario.USR_CREACION = Session["User"].ToString();
                        usuario.FEC_ACTUALIZO = DateTime.Now;
                        usuario.FEC_CREACION = DateTime.Now;
                        if (CheckBoxRecordar.Checked == true)
                        {
                            usuario.IND_COOKIE = "S";
                        }
                        else
                        {

                            usuario.IND_COOKIE = "N";
                        }

                        if (negocioUsuario.insert(usuario))
                        {
                            this.insertarUsuarioGrupo();
                            lblmsj.Text = String.Empty;
                            lblmsj.Text = "Se grabo correctamente  ";
                            string script = "ShowMsj();";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);
                            this.limpiarControles();
                        }
                        else
                        {
                            lblmsj.Text = String.Empty;
                            lblmsj.Text = "Error no se pudo grabar ";
                            string script = "ShowMsj();";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);

                        }



                    }


                }


            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "registrar");
                MensajesError(ex.Message, ex, "registrar");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "registrar");
                MensajesError(ex.Message, ex, "registrar");
            }







        }

        private void insertarUsuarioGrupo()
        {

            try
            {
                List<Object> selectItems = gvAccesos_Usuarios.GetSelectedFieldValues("id");

                foreach (object selectItemId in selectItems)
                {

                    negocioUsuario.PA_insertarUsuGrupo(txtUsuario.Text, (int)selectItemId);
                }
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "insertarUsuarioGrupo");
                MensajesError(ex.Message, ex, "insertarUsuarioGrupo");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "insertarUsuarioGrupo");
                MensajesError(ex.Message, ex, "insertarUsuarioGrupo");
            }

        }

        private void Actualizar()
        {

            try
            {

                T_SEG_USUARIO usuario = new T_SEG_USUARIO();
                usuario.ID_USUARIO = txtUsuario.Text;
                usuario.DES_NOMBRE = txtNombreUsuario.Text;
                usuario.DES_APELLIDOS = txtApellidos.Text;
                usuario.FEC_ACTUALIZO = DateTime.Now;
                usuario.USR_ACTUALIZO = Session["User"].ToString();
                usuario.DES_PASSWORD = Session["pass"].ToString() == "" ? Session["DES_PASSWORD"].ToString() : negocioUsuario.EncriptarPasswordUser(Session["pass"].ToString());
                Session["DES_PASSWORD"] = usuario.DES_PASSWORD;
                usuario.DES_EMAIL = txtCorreoElectronico.Text;
                usuario.IND_ESTADO = cboEstado.Text.Substring(0, 1);
                usuario.USR_CREACION = Session["USR_CREACION"].ToString();
                usuario.ID_TIPO_USUARIO = Convert.ToInt32(cboTipoUsuario.SelectedItem.Value);
                usuario.USR_ACTUALIZO = Session["User"].ToString();        
                usuario.FEC_ACTUALIZO = DateTime.Now;
                //usuario.FEC_CREACION = DateTime.Now;
                if (CheckBoxRecordar.Checked == true)
                { usuario.IND_COOKIE = "S"; }
                else
                { usuario.IND_COOKIE = "N"; }
                bool flagModificado = negocioUsuario.modificar(usuario);
                if (flagModificado)
                {
                    this.actualizarUsuarioGrupo();
                    lblmsj.Text = String.Empty;
                    lblmsj.Text = "Se actualizo correctamente !";
                    popupmsj.ShowOnPageLoad = true;
                }
                else
                {
                    lblmsj.Text = String.Empty;
                    lblmsj.Text = "Error al actualizar!";
                    popupmsj.ShowOnPageLoad = true;
                }
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "Actualizar");
                MensajesError(ex.Message, ex, "Actualizar");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "Actualizar");
                MensajesError(ex.Message, ex, "Actualizar");
            }


        }

        private void actualizarUsuarioGrupo()
        {
            try
            {
                negocioUsuario.PA_deleteUsuGrupo(txtUsuario.Text);
                List<Object> selectItems = gvAccesos_Usuarios.GetSelectedFieldValues("id");
                foreach (object selectItemId in selectItems)
                { negocioUsuario.PA_insertarUsuGrupo(txtUsuario.Text, (int)selectItemId); }
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "actualizarUsuarioGrupo");
                MensajesError(ex.Message, ex, "actualizarUsuarioGrupo");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "actualizarUsuarioGrupo");
                MensajesError(ex.Message, ex, "actualizarUsuarioGrupo");
            }


        }

        protected void btnCambiarPassword_Click(object sender, EventArgs e)
        {

        }

        protected void btnAceptarPop_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtPPasswordNuevo.Text.Trim().Length <= 0) {
                    lblmsj.Text = "Ingrese password nuevo !";
                    popupmsj.ShowOnPageLoad = true;
                    return;
                }

                if (txtPPasswordNuevo.Text.Trim() == txtPPasswordConfirmar.Text.Trim())
                {
                    Session["pass"] = txtPPasswordNuevo.Text.Trim();
                    lblmsj.Text = "Por favor grabar los cambios para cambiar el nuevo password !";                   
                    popupmsj.ShowOnPageLoad = true;
                    PopupCambiarClave.ShowOnPageLoad = false;
                }
                else
                {
                    lblmsj.Text = "El password nuevo no coincide !";
                    popupmsj.ShowOnPageLoad = true;
                }
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "btnAceptarPop_Click");
                MensajesError(ex.Message, ex, "btnAceptarPop_Click");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListadoArticulosDetalle");
                MensajesError(ex.Message, ex, "ListadoArticulosDetalle");
            }



        }

        protected void gvAccesos_Usuarios_AfterPerformCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            gvAccesos_Usuarios.DataSource = list;
            gvAccesos_Usuarios.DataBind();
        }

        private void ListaVendedor()
        {
            clsTD_VendedorBL clstd_vendedor = new clsTD_VendedorBL();
            cboVendedor.DataSource = clstd_vendedor.ListaVendedor();
            cboVendedor.TextField = "NOMBRE_APELLIDO";
            cboVendedor.ValueField = "ID_VENDEDOR";
            cboVendedor.DataBind();
        }

        private void ListaOrgVta()
        {

            clsTd_Org_VtaLogic clstd_org_vta = new clsTd_Org_VtaLogic();
            cboOrgVenta.DataSource = clstd_org_vta.lista();
            cboOrgVenta.TextField = "DES_ORG_VTA";
            cboOrgVenta.ValueField = "ID_ORG_VTA";
            cboOrgVenta.DataBind();
        }

        private void ListaCanal()
        {

            clsTd_Canal_DistribLogic clstd_canal_distrib = new clsTd_Canal_DistribLogic();
            cboCanal.DataSource = clstd_canal_distrib.lista();
            cboCanal.TextField = "DES_CANAL_DISTRIB";
            cboCanal.ValueField = "ID_CANAL_DISTRIB";
            cboCanal.DataBind();
        }

        protected void btnAgregarVA_Click(object sender, EventArgs e)
        {

            if (cboVendedor.Text == string.Empty || cboOrgVenta.Text == string.Empty || cboEstado.Text == string.Empty || cboCanal.Text == string.Empty)
            {
                lblmsj.Text = "Seleccione las opciones para poder agregar ";
                popupmsj.ShowOnPageLoad = true;
            }
            else
            {
                if (comaparar())
                {
                    lblmsj.Text = "El registro ya esta agregado ";
                    popupmsj.ShowOnPageLoad = true;
                }
                else
                {
                    if (Session["operacion"].ToString() == "1") { this.agregarDatosGriv(); } else { agregarDatosModificado(); }
                }
            }
        }

        protected void grdUsuarioVendedor_AfterPerformCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            this.ListaEstructura();
        }

        protected void btnAgregarCliente_Click(object sender, EventArgs e)
        {
            try
            {
                clsTD_ClienteBL l = new clsTD_ClienteBL();
                if (l.Listar(Convert.ToInt32(txtIdcliente.Text)) == null)
                {

                    lblmsj.Text = "El cliente ingresado no existe ";
                    popupmsj.ShowOnPageLoad = true;
                    return;
                }
                Crosland.Automotriz.Entidad.TD_CLIENTE lista = l.Listar(Convert.ToInt32(txtIdcliente.Text));             
                txtIdcliente.Text = lista.ID_CLIENTE.ToString();
                txtDescipcionCliente.Text = lista.DES_CLIENTE.ToString();
                if (txtDescipcionCliente.Text.Trim() == string.Empty)
                {
                    lblmsj.Text = "Ingrese un cliente para agregar ";
                    popupmsj.ShowOnPageLoad = true;
                }
                else
                {
                    if (comapararGridCliente()) { lblmsj.Text = "El registro ya esta agregado "; popupmsj.ShowOnPageLoad = true; }
                    else { if (Session["operacion"].ToString() == "1") { this.agregarGridCliente(); } else { this.agregarGridClienteModificar(); } }
                }
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "btnAgregarCliente_Click");
                MensajesError(ex.Message, ex, "btnAgregarCliente_Click");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "btnAgregarCliente_Click");
                MensajesError(ex.Message, ex, "btnAgregarCliente_Click");
            }


        }

        public int ultimoidUsuarioCliente = 0;
        private void agregarGridCliente()
        {

            try
            {

                ListaUsuarioCliente objLog = new ListaUsuarioCliente();

                objLog.DES_CLIENTE = txtDescipcionCliente.Text;
                objLog.ID_CLIENTE = Convert.ToInt32(txtIdcliente.Text);
               

                foreach (ListaUsuarioCliente row in listUsuarioCliente)
                {
                    ultimoidUsuarioCliente = row.ID_USUARIO_CLIENTE + 1;

                }
                if (grdCliente.VisibleRowCount == 0)
                {

                    objLog.ID_USUARIO_CLIENTE = clst_seg_usuario_cliente.UltimoNumeroUsuarioCliente() + 1;
                }
                else
                {

                    objLog.ID_USUARIO_CLIENTE = ultimoidUsuarioCliente;
                }
                listUsuarioCliente.Add(objLog);
                grdCliente.DataSource = listUsuarioCliente;
                grdCliente.DataBind();


            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "agregarGridCliente");
                MensajesError(ex.Message, ex, "agregarGridCliente");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "agregarGridCliente");
                MensajesError(ex.Message, ex, "agregarGridCliente");
            }






        }

        public int ultimoC = 0;
        public static int varibleC = 0;
        private void agregarGridClienteModificar()
        {

            try
            {

                ListaUsuarioCliente objLog = new ListaUsuarioCliente();

                objLog.DES_CLIENTE = txtDescipcionCliente.Text;
                objLog.ID_CLIENTE = Convert.ToInt32(txtIdcliente.Text);
              
                foreach (ListaUsuarioCliente row in listUsuarioCliente)
                {
                    ultimoC = row.ID_USUARIO_CLIENTE;


                }
                if (varibleC == clst_seg_usuario_cliente.UltimoNumeroUsuarioCliente() + 1)
                {

                    objLog.ID_USUARIO_CLIENTE = ultimoC + 1;
                }
                else
                {


                    varibleC = clst_seg_usuario_cliente.UltimoNumeroUsuarioCliente() + 1;
                    objLog.ID_USUARIO_CLIENTE = clst_seg_usuario_cliente.UltimoNumeroUsuarioCliente() + 1;
                }
                listUsuarioCliente.Add(objLog);
                grdCliente.DataSource = listUsuarioCliente;
                grdCliente.DataBind();


            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "agregarGridClienteModificar");
                MensajesError(ex.Message, ex, "agregarGridClienteModificar");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "agregarGridClienteModificar");
                MensajesError(ex.Message, ex, "agregarGridClienteModificar");
            }






        }

        private void GrabarStructuraCliente()
        {




            try
            {
                clst_seg_usuario_cliente.EliminarRelacionT_SEG_USUARIO_CLIENTE(txtUsuario.Text);
                foreach (ListaUsuarioCliente row in listUsuarioCliente)
                {


                    clst_seg_usuario_cliente.Insertar_T_SEG_USUARIO_CLIENTE(row.ID_USUARIO_CLIENTE, txtUsuario.Text, row.ID_CLIENTE);

                }

            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "GrabarStructuraCliente");
                MensajesError(ex.Message, ex, "GrabarStructuraCliente");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "GrabarStructuraCliente");
                MensajesError(ex.Message, ex, "GrabarStructuraCliente");
            }





        }

        private void ListaEstructuraCliente()
        {

            listUsuarioCliente.Clear();
            try
            {
                ListaUsuarioCliente objLog = new ListaUsuarioCliente();
                var q = from c in clst_seg_usuario_cliente.lista_T_SEG_USUARIO_CLIENTE(txtUsuario.Text)
                        select c;
                foreach (var s in q)
                {
                    objLog.ID_USUARIO_CLIENTE = s.ID_USUARIO_CLIENTE;                  
                    objLog.ID_CLIENTE = s.ID_CLIENTE;
                    objLog.DES_CLIENTE = s.DES_CLIENTE;

                    listUsuarioCliente.Add(objLog);

                    grdCliente.DataSource = listUsuarioCliente;
                    grdCliente.DataBind();
                }

            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListaEstructuraCliente");
                MensajesError(ex.Message, ex, "ListaEstructuraCliente");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListaEstructuraCliente");
                MensajesError(ex.Message, ex, "ListaEstructuraCliente");
            }







        }

        public struct ListaUsuarioCliente
        {


            public int ID_USUARIO_CLIENTE { get; set; }
            public string ID_USUARIO { get; set; }
            public int ID_CLIENTE { get; set; }
            public string DES_CLIENTE { get; set; }


        }

        protected void grdCliente_AfterPerformCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            this.ListaEstructuraCliente();
        }

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            gvAccesos_Usuarios.Selection.UnselectAll();        
            Response.Redirect("~/Seguridad/wFrmUsuario.aspx?id=" + ConfigurationManager.AppSettings["Seguridad"]);
        }

        protected void btnAgregar_O_Click(object sender, EventArgs e)
        {

            if (comapararUsuario_Oficina())
            {
                lblmsj.Text = String.Empty;
                lblmsj.Text = "El registro ya esta agregado por favor agregue otro ";
                string script = "ShowMsj();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);
            }
            else
            {

                this.AgregarUsuario_Oficina();
            }
        }


        private bool comapararUsuario_Oficina()
        {


            foreach (ListaUsuario_Oficina row in listaUsuario_Oficina)
            {
                if (row.ID_ORG_VTA == Convert.ToInt32(cboOrganizacion_O.SelectedItem.Value) && row.ID_OFI_VTA == Convert.ToInt32(cboOficina_O.SelectedItem.Value))
                {
                    return true;
                }
            }

            return false;
        }


        private void AgregarUsuario_Oficina()
        {


            try
            {
                ListaUsuario_Oficina objuO = new ListaUsuario_Oficina();

                objuO.ID_OFI_VTA = Convert.ToInt32(cboOficina_O.SelectedItem.Value);
                objuO.ID_ORG_VTA = Convert.ToInt32(cboOrganizacion_O.SelectedItem.Value);
                objuO.DES_OFICINA = cboOficina_O.Text;
                objuO.DES_ORGANIZACION = cboOrganizacion_O.Text;
                listaUsuario_Oficina.Add(objuO);
                grdUsuarioOficina.DataSource = listaUsuario_Oficina;
                grdUsuarioOficina.DataBind();
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "AgregarUsuario_Oficina");
                MensajesError(ex.Message, ex, "AgregarUsuario_Oficina");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "AgregarUsuario_Oficina");
                MensajesError(ex.Message, ex, "AgregarUsuario_Oficina");
            }




        }


        public struct ListaUsuario_Oficina
        {


            public int? ID_ORG_VTA { get; set; }
            public int? ID_OFI_VTA { get; set; }
            public string DES_ORGANIZACION { get; set; }
            public string DES_OFICINA { get; set; }
            public int? IND_ESTADO { get; set; }
        }

        private void ListaOrgTabOficina()
        {

            clsTd_Org_VtaLogic clstd_org_vta = new clsTd_Org_VtaLogic();
            cboOrganizacion_O.DataSource = clstd_org_vta.lista();
            cboOrganizacion_O.TextField = "DES_ORG_VTA";
            cboOrganizacion_O.ValueField = "ID_ORG_VTA";
            cboOrganizacion_O.DataBind();
        }

        private void ListaOfiTabOficina()
        {

            clsTd_Oficina_VentaLogic clstd_org_vta = new clsTd_Oficina_VentaLogic();
            cboOficina_O.DataSource = clstd_org_vta.lista();
            cboOficina_O.TextField = "DES_OFI_VTA";
            cboOficina_O.ValueField = "ID_OFI_VTA";
            cboOficina_O.DataBind();

        }


        private void RegistrarT_SEG_USUARIO_OFICINA()
        {

            try
            {
                clsUsuarioLogic usu = new clsUsuarioLogic();
                foreach (ListaUsuario_Oficina item in listaUsuario_Oficina)
                {
                    usu.InsertarT_SEG_USUARIO_OFICINA(txtUsuario.Text, item.ID_ORG_VTA.Value, item.ID_OFI_VTA.Value);

                }

            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "RegistrarT_SEG_USUARIO_OFICINA");
                MensajesError(ex.Message, ex, "RegistrarT_SEG_USUARIO_OFICINA");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "RegistrarT_SEG_USUARIO_OFICINA");
                MensajesError(ex.Message, ex, "RegistrarT_SEG_USUARIO_OFICINA");
            }


        }


        private void ListaUsuarioOficina()
        {
            listaUsuario_Oficina.Clear();

            try
            {
                clsT_Seg_Usuario_OficinaLogic l = new clsT_Seg_Usuario_OficinaLogic();

                ListaUsuario_Oficina lis = new ListaUsuario_Oficina();
                foreach (var item in l.lista_usuario_oficina(txtUsuario.Text))
                {
                    lis.ID_OFI_VTA = item.id_ofi_vta.Value;
                    lis.ID_ORG_VTA = item.id_org_vta.Value;
                    lis.DES_ORGANIZACION = item.DES_ORG_VTA;
                    lis.DES_OFICINA = item.DES_OFI_VTA;
                    lis.IND_ESTADO = item.IND_ESTADO== null ? 0 : item.IND_ESTADO.Value;
                    listaUsuario_Oficina.Add(lis);
                    grdUsuarioOficina.DataSource = listaUsuario_Oficina;
                    grdUsuarioOficina.DataBind();
                }

            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListaUsuarioOficina");
                MensajesError(ex.Message, ex, "ListaUsuarioOficina");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "ListadoArticulosDetalle");
                MensajesError(ex.Message, ex, "ListadoArticulosDetalle");
            }

        }




        private void EliminaClienteAsociados()
        {

            int index = Convert.ToInt32(grdCliente.GetRowValues(grdCliente.FocusedRowIndex, "ID_USUARIO_CLIENTE"));
            listUsuarioCliente.Remove(listUsuarioCliente.Where(x => x.ID_USUARIO_CLIENTE == index).ToList()[0]);
            grdCliente.DataSource = listUsuarioCliente;
            grdCliente.DataBind();
        }
        private void ListaClientesBusqueda()
        {
            clsTH_VentaBL blVenta = new clsTH_VentaBL();
            string des_cliente = txtPopClienteDescripcion.Text.Trim();
            int filas = int.Parse(cboPopClienteOpcion.SelectedItem.Value.ToString());

            grdPopClientesListadoBusqueda.DataSource = blVenta.ListarClientes(des_cliente, filas);
            grdPopClientesListadoBusqueda.DataBind();
            grdPopClientesListadoBusqueda.FocusedRowIndex = -1;
        }

        private void AgregarClientesModificar()
        {

            try
            {
                List<Object> selectItems = grdPopClientesListadoBusqueda.GetSelectedFieldValues(new string[] { "ID_CLIENTE", "DES_CLIENTE" });

                foreach (object[] item in selectItems)
                {
                    ListaUsuarioCliente obj = new ListaUsuarioCliente();
                    obj.ID_CLIENTE = Convert.ToInt32(item[0]);
                    obj.DES_CLIENTE = item[1].ToString();

                    foreach (ListaUsuarioCliente row in listUsuarioCliente)
                    { ultimoC = row.ID_USUARIO_CLIENTE; }
                    if (varibleC == clst_seg_usuario_cliente.UltimoNumeroUsuarioCliente() + 1)
                    {
                        obj.ID_USUARIO_CLIENTE = ultimoC + 1;
                    }
                    else
                    {
                        varibleC = clst_seg_usuario_cliente.UltimoNumeroUsuarioCliente() + 1;
                        obj.ID_USUARIO_CLIENTE = clst_seg_usuario_cliente.UltimoNumeroUsuarioCliente() + 1;
                    }
                    String strV = "";
                    for (int i = 0; i < grdCliente.VisibleRowCount; i++)
                    {
                        int idg = Convert.ToInt32(grdCliente.GetRowValues(i, "ID_CLIENTE"));
                        if (Convert.ToInt32(item[0]) == idg)
                        { strV = "si"; break; }
                    }
                    if (strV == "si") { continue; }
                    listUsuarioCliente.Add(obj);
                }
                grdCliente.DataSource = listUsuarioCliente;
                grdCliente.DataBind();
                grdPopClientesListadoBusqueda.Selection.UnselectAll();
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "AgregarClientesModificar");
                MensajesError(ex.Message, ex, "AgregarClientesModificar");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "AgregarClientesModificar");
                MensajesError(ex.Message, ex, "AgregarClientesModificar");
            }

        }

        private void AgregarClientesNuevo()
        {

            try
            {
                List<Object> selectItems = grdPopClientesListadoBusqueda.GetSelectedFieldValues(new string[] { "ID_CLIENTE", "DES_CLIENTE" });

                foreach (object[] item in selectItems)
                {
                    ListaUsuarioCliente obj = new ListaUsuarioCliente();
                    obj.ID_CLIENTE = Convert.ToInt32(item[0]);
                    obj.DES_CLIENTE = item[1].ToString();

                    foreach (ListaUsuarioCliente row in listUsuarioCliente)
                    {
                        ultimoidUsuarioCliente = row.ID_USUARIO_CLIENTE + 1;
                    }
                    if (grdCliente.VisibleRowCount == 0)
                    {
                        obj.ID_USUARIO_CLIENTE = clst_seg_usuario_cliente.UltimoNumeroUsuarioCliente() + 1;
                    }
                    else
                    {
                        obj.ID_USUARIO_CLIENTE = ultimoidUsuarioCliente;
                    }
                    String strV = "";
                    for (int i = 0; i < grdCliente.VisibleRowCount; i++)
                    {
                        int idg = Convert.ToInt32(grdCliente.GetRowValues(i, "ID_CLIENTE"));
                        if (Convert.ToInt32(item[0]) == idg)
                        { strV = "si"; break; }
                    }
                    if (strV == "si") { continue; }
                    listUsuarioCliente.Add(obj);
                }
                grdCliente.DataSource = listUsuarioCliente;
                grdCliente.DataBind();
                grdPopClientesListadoBusqueda.Selection.UnselectAll();
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "AgregarClientesNuevo");
                MensajesError(ex.Message, ex, "AgregarClientesNuevo");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "AgregarClientesNuevo");
                MensajesError(ex.Message, ex, "AgregarClientesNuevo");
            }

        }


        protected void btnAceptarA_Click(object sender, EventArgs e)
        {
            try
            {
                clsT_Seg_Usuario_OficinaLogic usu = new clsT_Seg_Usuario_OficinaLogic();
                int id_org_vta = Convert.ToInt32(grdUsuarioOficina.GetRowValues(grdUsuarioOficina.FocusedRowIndex, "ID_ORG_VTA"));
                int id_ofi_vta = Convert.ToInt32(grdUsuarioOficina.GetRowValues(grdUsuarioOficina.FocusedRowIndex, "ID_OFI_VTA"));
                usu.ActualizaEstado(txtUsuario.Text, id_org_vta, id_ofi_vta, 1, "Anulado");
                PopupConfirmacionAnularUsuarioOficina.ShowOnPageLoad = false;
                this.ListaUsuarioOficina();
            }
            catch (DataException ex)
            {
                GuardarExceptionLog(ex.Message, ex, "btnAceptarA_Click");
                MensajesError(ex.Message, ex, "btnAceptarA_Click");
            }
            catch (Exception ex)
            {
                GuardarExceptionLog(ex.Message, ex, "btnAceptarA_Click");
                MensajesError(ex.Message, ex, "btnAceptarA_Click");
            }


        }

        protected void grdUsuarioOficina_HtmlRowPrepared(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e)
        {
            if (e.RowType != GridViewRowType.Data) return;
            int ind_estado = Convert.ToInt32(e.GetValue("IND_ESTADO"));
            if (ind_estado == 1)
                e.Row.BackColor = Color.LightPink;
        }

        protected void btnActivar_Click(object sender, EventArgs e)
        {
            clsT_Seg_Usuario_OficinaLogic usu = new clsT_Seg_Usuario_OficinaLogic();
            int id_org_vta = Convert.ToInt32(grdUsuarioOficina.GetRowValues(grdUsuarioOficina.FocusedRowIndex, "ID_ORG_VTA"));
            int id_ofi_vta = Convert.ToInt32(grdUsuarioOficina.GetRowValues(grdUsuarioOficina.FocusedRowIndex, "ID_OFI_VTA"));
            usu.ActualizaEstado(txtUsuario.Text, id_org_vta, id_ofi_vta, 0, "Activado");
            PopupConfirmacionActivadoUsuarioOficina.ShowOnPageLoad = false;
            this.ListaUsuarioOficina();
        }

        protected void grdUsuarioOficina_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            grdUsuarioOficina.DataSource = listaUsuario_Oficina;
            grdUsuarioOficina.DataBind();
        }

        protected void btnPopClienteAceptar_Click(object sender, EventArgs e)
        {
            this.EliminaClienteAsociados();
            this.PopupEliminarCliente.ShowOnPageLoad = false;
        }


        protected void btnPopBusquedaClienteAceptar_Click(object sender, EventArgs e)
        {
            if (Session["operacion"].ToString() == "1") { this.AgregarClientesNuevo(); } else if (Session["operacion"].ToString() == "2") { this.AgregarClientesModificar(); } else { return; }
            PopupBusquedaCliente.ShowOnPageLoad = false;
        }

        protected void btnPopClienteConsultar_Click(object sender, EventArgs e)
        {
            this.ListaClientesBusqueda();
        }

        protected void grdPopClientesListadoBusqueda_PageIndexChanged(object sender, EventArgs e)
        {
            this.ListaClientesBusqueda();
        }


        private void GuardarExceptionLog(String msgUsu, Exception ex, String metError)
        {
            try
            {
                String msgReal, fhError, pagError, codUsu;
                msgReal = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message;
                pagError = new System.IO.FileInfo(Page.Request.Url.AbsolutePath).Name;
                codUsu = Session["User"].ToString();
                fhError = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
                int number = 0;
                for (int i = 0; i < trace.FrameCount; i++)
                {
                    System.Diagnostics.StackFrame sf = trace.GetFrame(i);
                    number = sf.GetFileLineNumber();
                }
                fhError = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                new Logg().ErrorLog(Server.MapPath("~/Logs/ErrorLog.csv"), msgUsu, msgReal, pagError, metError, codUsu, number);
            }
            catch (DataException e)
            {

                MensajesError(e.Message, e, "GuardarExceptionLog");
            }
            catch (RunException re)
            {
                MensajesError(re.Message, re, "GuardarExceptionLog");
            }

        }



        private void MensajesError(String msgUsu, Exception ex, String metError)
        {
            Crosland.Automotriz.Web.UserControl.MensajeError uc = (Crosland.Automotriz.Web.UserControl.MensajeError)Master.FindControl("ucErrorMensaje");
            String msgReal, fhError, pagError, codUsu;
            msgReal = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message;
            pagError = new System.IO.FileInfo(Page.Request.Url.AbsolutePath).Name;
            codUsu = Session["User"].ToString();
            fhError = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
            System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
            int number = 0;
            for (int i = 0; i < trace.FrameCount; i++)
            {
                System.Diagnostics.StackFrame sf = trace.GetFrame(i);
                number = sf.GetFileLineNumber();
            }
            uc.Errores(msgUsu, msgReal, fhError, pagError, metError, codUsu, number);
        }


    }

}